home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / util / TreeMap$NavigableSubMap.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  6.7 KB  |  269 lines

  1. package java.util;
  2.  
  3. import java.io.Serializable;
  4.  
  5. abstract class TreeMap$NavigableSubMap<K, V> extends AbstractMap<K, V> implements NavigableMap<K, V>, Serializable {
  6.    // $FF: renamed from: m java.util.TreeMap
  7.    final TreeMap<K, V> field_0;
  8.    // $FF: renamed from: lo java.lang.Object
  9.    final K field_1;
  10.    // $FF: renamed from: hi java.lang.Object
  11.    final K field_2;
  12.    final boolean fromStart;
  13.    final boolean toEnd;
  14.    final boolean loInclusive;
  15.    final boolean hiInclusive;
  16.    transient NavigableMap<K, V> descendingMapView = null;
  17.    transient TreeMap$NavigableSubMap<K, V>.EntrySetView entrySetView = null;
  18.    transient TreeMap.KeySet<K> navigableKeySetView = null;
  19.  
  20.    TreeMap$NavigableSubMap(TreeMap<K, V> var1, boolean var2, K var3, boolean var4, boolean var5, K var6, boolean var7) {
  21.       if (!var2 && !var5) {
  22.          if (var1.compare(var3, var6) > 0) {
  23.             throw new IllegalArgumentException("fromKey > toKey");
  24.          }
  25.       } else {
  26.          if (!var2) {
  27.             var1.compare(var3, var3);
  28.          }
  29.  
  30.          if (!var5) {
  31.             var1.compare(var6, var6);
  32.          }
  33.       }
  34.  
  35.       this.field_0 = var1;
  36.       this.fromStart = var2;
  37.       this.field_1 = var3;
  38.       this.loInclusive = var4;
  39.       this.toEnd = var5;
  40.       this.field_2 = var6;
  41.       this.hiInclusive = var7;
  42.    }
  43.  
  44.    final boolean tooLow(Object var1) {
  45.       if (!this.fromStart) {
  46.          int var2 = this.field_0.compare(var1, this.field_1);
  47.          if (var2 < 0 || var2 == 0 && !this.loInclusive) {
  48.             return true;
  49.          }
  50.       }
  51.  
  52.       return false;
  53.    }
  54.  
  55.    final boolean tooHigh(Object var1) {
  56.       if (!this.toEnd) {
  57.          int var2 = this.field_0.compare(var1, this.field_2);
  58.          if (var2 > 0 || var2 == 0 && !this.hiInclusive) {
  59.             return true;
  60.          }
  61.       }
  62.  
  63.       return false;
  64.    }
  65.  
  66.    final boolean inRange(Object var1) {
  67.       return !this.tooLow(var1) && !this.tooHigh(var1);
  68.    }
  69.  
  70.    final boolean inClosedRange(Object var1) {
  71.       return (this.fromStart || this.field_0.compare(var1, this.field_1) >= 0) && (this.toEnd || this.field_0.compare(this.field_2, var1) >= 0);
  72.    }
  73.  
  74.    final boolean inRange(Object var1, boolean var2) {
  75.       return var2 ? this.inRange(var1) : this.inClosedRange(var1);
  76.    }
  77.  
  78.    final TreeMap.Entry<K, V> absLowest() {
  79.       TreeMap.Entry var1 = this.fromStart ? this.field_0.getFirstEntry() : (this.loInclusive ? this.field_0.getCeilingEntry(this.field_1) : this.field_0.getHigherEntry(this.field_1));
  80.       return var1 != null && !this.tooHigh(var1.key) ? var1 : null;
  81.    }
  82.  
  83.    final TreeMap.Entry<K, V> absHighest() {
  84.       TreeMap.Entry var1 = this.toEnd ? this.field_0.getLastEntry() : (this.hiInclusive ? this.field_0.getFloorEntry(this.field_2) : this.field_0.getLowerEntry(this.field_2));
  85.       return var1 != null && !this.tooLow(var1.key) ? var1 : null;
  86.    }
  87.  
  88.    final TreeMap.Entry<K, V> absCeiling(K var1) {
  89.       if (this.tooLow(var1)) {
  90.          return this.absLowest();
  91.       } else {
  92.          TreeMap.Entry var2 = this.field_0.getCeilingEntry(var1);
  93.          return var2 != null && !this.tooHigh(var2.key) ? var2 : null;
  94.       }
  95.    }
  96.  
  97.    final TreeMap.Entry<K, V> absHigher(K var1) {
  98.       if (this.tooLow(var1)) {
  99.          return this.absLowest();
  100.       } else {
  101.          TreeMap.Entry var2 = this.field_0.getHigherEntry(var1);
  102.          return var2 != null && !this.tooHigh(var2.key) ? var2 : null;
  103.       }
  104.    }
  105.  
  106.    final TreeMap.Entry<K, V> absFloor(K var1) {
  107.       if (this.tooHigh(var1)) {
  108.          return this.absHighest();
  109.       } else {
  110.          TreeMap.Entry var2 = this.field_0.getFloorEntry(var1);
  111.          return var2 != null && !this.tooLow(var2.key) ? var2 : null;
  112.       }
  113.    }
  114.  
  115.    final TreeMap.Entry<K, V> absLower(K var1) {
  116.       if (this.tooHigh(var1)) {
  117.          return this.absHighest();
  118.       } else {
  119.          TreeMap.Entry var2 = this.field_0.getLowerEntry(var1);
  120.          return var2 != null && !this.tooLow(var2.key) ? var2 : null;
  121.       }
  122.    }
  123.  
  124.    final TreeMap.Entry<K, V> absHighFence() {
  125.       return this.toEnd ? null : (this.hiInclusive ? this.field_0.getHigherEntry(this.field_2) : this.field_0.getCeilingEntry(this.field_2));
  126.    }
  127.  
  128.    final TreeMap.Entry<K, V> absLowFence() {
  129.       return this.fromStart ? null : (this.loInclusive ? this.field_0.getLowerEntry(this.field_1) : this.field_0.getFloorEntry(this.field_1));
  130.    }
  131.  
  132.    abstract TreeMap.Entry<K, V> subLowest();
  133.  
  134.    abstract TreeMap.Entry<K, V> subHighest();
  135.  
  136.    abstract TreeMap.Entry<K, V> subCeiling(K var1);
  137.  
  138.    abstract TreeMap.Entry<K, V> subHigher(K var1);
  139.  
  140.    abstract TreeMap.Entry<K, V> subFloor(K var1);
  141.  
  142.    abstract TreeMap.Entry<K, V> subLower(K var1);
  143.  
  144.    abstract Iterator<K> keyIterator();
  145.  
  146.    abstract Iterator<K> descendingKeyIterator();
  147.  
  148.    public boolean isEmpty() {
  149.       return this.fromStart && this.toEnd ? this.field_0.isEmpty() : this.entrySet().isEmpty();
  150.    }
  151.  
  152.    public int size() {
  153.       return this.fromStart && this.toEnd ? this.field_0.size() : this.entrySet().size();
  154.    }
  155.  
  156.    public final boolean containsKey(Object var1) {
  157.       return this.inRange(var1) && this.field_0.containsKey(var1);
  158.    }
  159.  
  160.    public final V put(K var1, V var2) {
  161.       if (!this.inRange(var1)) {
  162.          throw new IllegalArgumentException("key out of range");
  163.       } else {
  164.          return (V)this.field_0.put(var1, var2);
  165.       }
  166.    }
  167.  
  168.    public final V get(Object var1) {
  169.       return (V)(!this.inRange(var1) ? null : this.field_0.get(var1));
  170.    }
  171.  
  172.    public final V remove(Object var1) {
  173.       return (V)(!this.inRange(var1) ? null : this.field_0.remove(var1));
  174.    }
  175.  
  176.    public final Map.Entry<K, V> ceilingEntry(K var1) {
  177.       return TreeMap.exportEntry(this.subCeiling(var1));
  178.    }
  179.  
  180.    public final K ceilingKey(K var1) {
  181.       return (K)TreeMap.keyOrNull(this.subCeiling(var1));
  182.    }
  183.  
  184.    public final Map.Entry<K, V> higherEntry(K var1) {
  185.       return TreeMap.exportEntry(this.subHigher(var1));
  186.    }
  187.  
  188.    public final K higherKey(K var1) {
  189.       return (K)TreeMap.keyOrNull(this.subHigher(var1));
  190.    }
  191.  
  192.    public final Map.Entry<K, V> floorEntry(K var1) {
  193.       return TreeMap.exportEntry(this.subFloor(var1));
  194.    }
  195.  
  196.    public final K floorKey(K var1) {
  197.       return (K)TreeMap.keyOrNull(this.subFloor(var1));
  198.    }
  199.  
  200.    public final Map.Entry<K, V> lowerEntry(K var1) {
  201.       return TreeMap.exportEntry(this.subLower(var1));
  202.    }
  203.  
  204.    public final K lowerKey(K var1) {
  205.       return (K)TreeMap.keyOrNull(this.subLower(var1));
  206.    }
  207.  
  208.    public final K firstKey() {
  209.       return (K)TreeMap.key(this.subLowest());
  210.    }
  211.  
  212.    public final K lastKey() {
  213.       return (K)TreeMap.key(this.subHighest());
  214.    }
  215.  
  216.    public final Map.Entry<K, V> firstEntry() {
  217.       return TreeMap.exportEntry(this.subLowest());
  218.    }
  219.  
  220.    public final Map.Entry<K, V> lastEntry() {
  221.       return TreeMap.exportEntry(this.subHighest());
  222.    }
  223.  
  224.    public final Map.Entry<K, V> pollFirstEntry() {
  225.       TreeMap.Entry var1 = this.subLowest();
  226.       Map.Entry var2 = TreeMap.exportEntry(var1);
  227.       if (var1 != null) {
  228.          TreeMap.access$000(this.field_0, var1);
  229.       }
  230.  
  231.       return var2;
  232.    }
  233.  
  234.    public final Map.Entry<K, V> pollLastEntry() {
  235.       TreeMap.Entry var1 = this.subHighest();
  236.       Map.Entry var2 = TreeMap.exportEntry(var1);
  237.       if (var1 != null) {
  238.          TreeMap.access$000(this.field_0, var1);
  239.       }
  240.  
  241.       return var2;
  242.    }
  243.  
  244.    public final NavigableSet<K> navigableKeySet() {
  245.       TreeMap.KeySet var1 = this.navigableKeySetView;
  246.       return var1 != null ? var1 : (this.navigableKeySetView = new TreeMap.KeySet(this));
  247.    }
  248.  
  249.    public final Set<K> keySet() {
  250.       return this.navigableKeySet();
  251.    }
  252.  
  253.    public NavigableSet<K> descendingKeySet() {
  254.       return this.descendingMap().navigableKeySet();
  255.    }
  256.  
  257.    public final SortedMap<K, V> subMap(K var1, K var2) {
  258.       return this.subMap(var1, true, var2, false);
  259.    }
  260.  
  261.    public final SortedMap<K, V> headMap(K var1) {
  262.       return this.headMap(var1, false);
  263.    }
  264.  
  265.    public final SortedMap<K, V> tailMap(K var1) {
  266.       return this.tailMap(var1, true);
  267.    }
  268. }
  269.